package com.open.capacity.form.service;


import com.open.capacity.commons.PageResult;
import com.open.capacity.form.vo.FormDbTableFieldVo;
import com.open.capacity.form.vo.FormDbTableVo;

import java.util.List;
import java.util.Map;

/**
 * @author 作者 ftquan 464725602@qq.com
 * @version 创建时间：2017年11月12日 上午22:57:51
 */
public interface FormDbTableService {

    /**
     * tableName获取列信息
     *
     * @param dbKey
     * @param tableName
     * @return
     */
    List<FormDbTableFieldVo> findFieldsByTableName(String dbKey, String tableName);


    /**
     * 数据库表数据表列表
     *
     * @return
     */
    List<FormDbTableVo> findList(String dbKey, String tableName);

    /**
     * 数据库表数据表数据
     *
     * @param dbKey 数据库关键字
     * @param sql   sql语句
     * @return
     */
    List<Map<String, Object>> findData(String dbKey, String sql, Map<String, Object> params);

    /**
     * 数据库表数据表数据
     *
     * @param dbKey 数据库关键字
     * @param sql   sql语句
     * @return
     */
    PageResult<Map<String, Object>> pageData(String dbKey, String sql, Map<String, Object> params);


    /**
     * 执行sql脚本
     *
     * @param dbKey    数据库关键字
     * @param sql      sql语句
     * @param whereStr 参数
     * @return
     */
    Integer excuteSql(String dbKey, String sql, String whereStr);

    /**
     * 执行sql脚本
     *
     * @param dbKey  数据库关键字
     * @param sql    sql语句
     * @param params 键值对
     * @return
     */
    Integer excuteSqlWithParams(String dbKey, String sql, Map<String, Object> params);
}
